﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TVH.Negocio
{
    public class NegUsuario : BaseNegocio<Persistencia.PerUsuario, Entidade.Usuario>
    {
        public override void Inserir(Entidade.Usuario registro)
        {
            if (!VerificarUnicidadeLogin(registro.Login))
            {
                throw new NegocioException("Login já cadastrado, por favor informe outro.");
            }
            base.Inserir(registro);
        }

        public override void Alterar(Entidade.Usuario registro)
        {
            var valorOriginal = base.Obter(registro.Id.Value);
            if (valorOriginal.SenhaCriptografada == registro.SenhaLimpa)
            {
                registro.SenhaCriptografada = valorOriginal.SenhaCriptografada; 
            }
            base.Alterar(registro);
        }

        private bool VerificarUnicidadeLogin(string login)
        {
            var parametros = new Entidade.Usuario()
            {
                Login = login
            };

            return (base.ObterLista(parametros).Count == 0);
        }
    }
}
